

package top.continew.admin.question.manger.service;

import top.continew.admin.question.manger.service.model.*;

import java.util.List;
import java.util.Map;

public interface MangerQuestionService {
    SaveQuestion save(SaveQuestion saveQuestion);

    List<QuestionVO> getList(QueryQuestion queryQuestion);

    QuestionInfo getInfo(Long id);

    void commitCheck(Long questionId, Long checkPeople);

    /**
     * 校验驳回
     */
    void rejectCheck(Long questionId, String msg);

    /**
     * 批量校验驳回
     *
     * @param questionIds
     * @param msg
     */
    void rejectCheckMultiple(List<Long> questionIds, String msg);

    void commitReview(Long questionId, Long reviewPeople);

    /**
     * 审核驳回
     */
    void rejectReview(Long questionId, String msg);

    void rejectReviewMultiple(String questionIds, String msg);

    void review(Long questionId);

    List<TestStructureQuestionVO> getQuestionByQuestionSet(long questionSetId);

    void questionSort(Long questionId, Long sort);

    void delete(String questionId);

    /**
     * 获取题库管理列表数据
     *
     * @param query
     * @return
     */
    List<QuestionVO> getListQuestionManager(QuestionQuery query);

    /**
     * 老师录题统计查询
     */
    List<StatisticalTeacherVo> statisticalTeacher(String startTime, String endTime, Long teacherId);

    /**
     * 老师试卷录题统计
     */
    List<StatisticalTeacherVo> statisticalPaperTeacher(String startTime, String endTime, Long teacherId);

    /**
     * 获取题目上一条和下一条
     */
    Map<String, Object> getQuestionUpAndDown(Long questionId, String activeName);

    /**
     * 批量删除题目
     */
    boolean delQuestion(List<Long> ids, Long userId);

    /**
     * 搜索题目
     */
    List<Value> search(String title);

    /**
     * 获取带抽检的题目
     */
    List<SpotCheckQuestionVO> getSpotCheckQuestionList(QuerySpotCheckQuestion querySpotCheckQuestion);

    /**
     * 抽检数量
     */
    SpotCheckQuestionSum getSpotCheckQuestionSum(QuerySpotCheckQuestion querySpotCheckQuestion);

    void updateOfficialQuestion(Long id, String isOfficialQuestion, String officialQuestionSource, String year);

    /**
     * 上/下线
     */
    void online(Long id, Long onlineStatus);

}
